<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../templates/principal.xhtml">

    <ui:define name="content" id="content">        
        <h:form id="frmCidade">
            <p:growl id="messages" life="5000" />

            <p:panel id="panel" header="Bem Vindo ao Cadastro de Cidades" style="text-align: center">

                <p:dataTable id="tabCidade" widgetVar="wtabCidade" var="cidade" value="#{cidadeBean.lazyModel}" paginator="true" rows="15" 
                             paginatorPosition="top" emptyMessage="Nenhum Registro Retornado ..." lazy="true" filterEvent="enter">

                    <p:ajax event="rowSelect" listener="#{cidadeBean.onRowSelect}" update=":frmCidade:panel, :frmCidade:messages" oncomplete="cidadeDialog.show()" />

                    <p:column headerText="Descrição" sortBy="#{cidade.dscCidade}" filterBy="#{cidade.dscCidade}" style="text-align: left">
                        <h:outputText value="#{cidade.dscCidade}" />
                    </p:column>

                    <p:column headerText="U.F." sortBy="#{cidade.codUf.codUf}" filterBy="#{cidade.codUf.codUf}">
                        <h:outputText value="#{cidade.codUf.codUf}" />
                    </p:column>

                    <p:column style="width: 10px">
                        <h:panelGrid columns="4" styleClass="actions" cellpadding="0">
                            <p:commandButton id="selectButtonCategoria" update=":frmCidade:panel, :frmCidade:messages" 
                                             icon="ui-icon-search" title="Visualizar // Alterar Cidade" oncomplete="cidadeDialog.show()">
                                <f:setPropertyActionListener value="#{cidade}" target="#{cidadeBean.selectedCidade}" />
                            </p:commandButton>

                            <p:commandButton id="excluirButtonCategoria" update=":frmCidade:panel, :frmCidade:messages" 
                                             icon="ui-icon-trash" title="Excluir Cidade" oncomplete="confirmation.show()">
                                <f:setPropertyActionListener value="#{cidade}" target="#{cidadeBean.selectedCidade}" />
                            </p:commandButton>
                        </h:panelGrid>
                    </p:column>
                    
                    <f:facet name="footer">
                        <div style="text-align: left;">
                            <p:commandButton id="incluirButtonCategoria" actionListener="#{cidadeBean.preparaInserir}" 
                                             update=":frmCidade:panel, :frmCidade:messages" value="Nova Cidade"
                                             icon="ui-icon-pencil" title="Cadastrar Nova Cidade" oncomplete="cidadeDialog.show()" />
                        </div>
                    </f:facet>
                </p:dataTable>

                <p:dialog id="dialog" header="Detalhes Cidade" widgetVar="cidadeDialog" resizable="true" dynamic="true"
                          width="600" showEffect="explode" hideEffect="explode" style="text-align: left">

                    <p:panelGrid id="display">
                        <p:row>
                            <p:column>
                                <h:outputText value="Descrição:" />
                            </p:column>
                            <p:column>
                                <p:inputText id="inDescricao" value="#{cidadeBean.selectedCidade.dscCidade}" style="width:400px; font-weight:bold; text-transform:uppercase;" />
                            </p:column>
                        </p:row>

                        <p:row>
                            <p:column>
                                <h:outputText value="U.F.:" />
                            </p:column>
                            <p:column>
                                <p:autoComplete id="acUf" value="#{cidadeBean.selectedCidade.codUf.codUf}" completeMethod="#{cidadeBean.complete}" style="width:50px; font-weight:bold; text-transform:uppercase;"/>
                            </p:column>
                        </p:row>
                    </p:panelGrid>     

                    <p:commandButton value="Inserir" update=":frmCidade:panel, :frmCidade:messages"
                                     actionListener="#{cidadeBean.inserir}" oncomplete="cidadeDialog.hide()" />
                    <p:commandButton value="Alterar" update=":frmCidade:panel, :frmCidade:messages"
                                     actionListener="#{cidadeBean.alterar}" oncomplete="cidadeDialog.hide()" />
                </p:dialog>

                <p:confirmDialog message="Confirma a Exclusão dessa Cidade: #{cidadeBean.selectedCidade.dscCidade}?" 
                                 header="Exclusão da Cidade" severity="alert" widgetVar="confirmation">  

                    <p:commandButton value="Sim" update=":frmCidade:panel, :frmCidade:messages" oncomplete="confirmation.hide(),cidadeDialog.hide()"  
                                     actionListener="#{cidadeBean.excluir}" />  
                    <p:commandButton value="Não" onclick="confirmation.hide()" type="button" />   

                </p:confirmDialog>
            </p:panel>
        </h:form>
    </ui:define>
</ui:composition>